REGR: Avoid unnecessary warning when setting empty dataframe
- [x] closes #48480 (Replace xxxx with the Github issue number)
- [x] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [x] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [x] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [x] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

Thanks @phofl  I receive this warning

'''
`FutureWarning: In a future version, `df.iloc[:, i] = newvals` will attempt to set the values inplace instead of always setting a new array. To retain the old behavior, use either `df[df.columns[i]] = newvals` or, if columns are non-unique, `df.isetitem(i, newvals)`
'''

when calling df.update(df2). I'm unclear if this issue (#48853) fixed the warning message and / or if there is a different method I should use to update my dataframe. @ryanlampkin are you using new-style/nullable-dtypes such as `string` or `Int64`? I've found that `df.update` loses the original dtype, demoting the column to `object`. I think this confuses some internal check in `df.update`, resulting in the `df.loc` assignment and this warning.