I have upsert working in an EFCore database by generating the keys database-side. For details, see Use "Attach" as an Upsert in Entity Framework Core.
Now for a new question -- is there a way to do it when the keys are Guids generated in C# code? Based on the docs, it seems like Attach and Update won't work. But is there something that will allow it?
If the answer is "No, you can't do that", please don't be afraid to say so.