Каждый оператор SQL на уровне изоляции READ COMMITTED
делает снимок базы данных, поэтому он и все его подзапросы видят согласованную версию базы данных.
Но вы не защищены от «потерянных обновлений» ”: Возможно, что параллельная транзакция изменяет строку между началом оператора и временем обновления строки, поэтому может случиться так, что для строки, которая фактически обновлена, owner
не будет больше присвоено значение NULL.
Если вам нужно этого избежать, добавьте в подзапрос предложение FOR UPDATE
.