Както забелязахте правилно, не можете да видите редове, модифицирани в CTE в главния SELECT . Това е документирано
:
Така че трябва да използвате RETURNING .
Предполагам, че най-простият начин би бил да не използвате функция, а да изпълните json_build_object в основната заявка и я накарайте да работи с CTEs parents и children .