Трикът за jsonb_set() е, че модифицира част от jsonb обект, но връща целия обект. Така че му подавате текущата стойност на колоната и пътя, който искате да промените („страници“ тук, като низов масив), след което взимате съществуващия масив (my_column->'pages' ) и добавете || новия обект към него. Всички други части на jsonb обектът остава такъв, какъвто е бил. Вие ефективно присвоявате напълно нов обект на колоната, но това е без значение, защото UPDATE така или иначе записва нов ред във физическата таблица.
UPDATE my_table
SET my_column = jsonb_set(my_column, '{pages}', my_column->'pages' || new_json, true);
Незадължителният create_missing параметърът е зададен на true тук добавя обекта "страници", ако все още не съществува.