В CTE нельзя вынести работу с другими сервисами. Например мне нужно взять из ПГ данные, потом получить ещё данные из других источников ("обогатить запрошенные данные") и уже обновить данные в ПГ
Почему "нельзя", кстати?
Что мешает вызывать в CTE произвольные функции, в т.ч. работающие с внешними источниками?
Но, вообще, речь вроде шла про транзакции, а не про CTE...