In a common forum that is not purely dedicated to Microsoft technology, MS product names really ought to be prefixed — context is important. For example, it applies to Entity Framework also: it has happened a few times to me that a non-MS developer assumed that ORMs in general were discussed, while it was related only to the MS implementation.
The concept is applicable to relational databases in general, and it's a good idea. ETA: The point here is not the syntax, it's "don't leave race conditions sitting around in your upserts." Whatever RDBMS you're using, you need to make sure you're at the very least inside a transaction, and at best avoiding an unnecessary transaction.
Yes the article isn't really applicable to e.g. postgres
where you would simply use on conflict do update which is atomic so no need to bother with things like a serializable transaction.