Im Prinzip Ja.
Durch den Coalesce erzeugst du einen Default, so dass auf jeden Fall ein Update erzwungen wird.
Von der Aufgabenstellung her kann das aber muss das nicht richtig sein.

Die Where-Klausel des Updates macht in soweit Sinn, dass weniger Updates überhaupt durchgeführt werden, wenn der Ursprungswert erhalten bleiben muss.

Alternativ kannst du auch dieses tun:

update testfgn/artstp a set a.arlinr =
coalesce((select b.lirwa from
testfgn/zlfa b where
a.arlinr = b.liwhg), a.arlinr)

Damit bleibt der Wert auch erhalten, allerdings wird die gesamte Tabelle geändert!