Du kannst es doch auch mal mit dem "union values('*fehlt', '*fehlt')" versuchen.
Um es noch komplizierter zu machen, wäre auch folgendes möglich:

Update ...
set (a, b) = values(
coalesce((select ...), '*fehlt')
,coalesce((select ...), '*fehlt')
)

Dies bedeutet dann allerdings 2 Singlevalue-Selects, wobei da dann jeweils das Coalesce auch entfallen kann.

Klar kannst du auch 2 Updates machen: 1. mit exists(...), 2 mit Konstanten und not exists (...).