Пример изменения элементов в массиве postgres json

------------------------------------------------- 
with edited as ( 
 select 
 -- здесь 1337 это новое значение для sample_id
  t1.id as sample_id, 
  -- 2. замена sample_id 
  jsonb_set( t1.arr_element, '{"sample_id}', '1337', false) as data
 from ( 
    select 
      d2.id as id, 
      -- 1. разворачиваем массив 
      jsonb_array_elements(d2.data) as arr_element 
    from
      public."sample_table" d2  
    -- некий фильтр  
    -- where
    --   d2.some_field = 12345 
    ) t1 
    order by t1.id  
), 
-- 3. сворачиваем обратно 
 aggregated as ( 
 select 
  sample_id, 
  jsonb_agg(data) as data_edited
 from
  edited 
 group by edited.sample_id
) 
-- 4. апдейт 
update 
 public."sample_table" 
set 
 data = jsonb_set(data, '{"sample_id"}', a.data_edited, false)
from 
 aggregated a  
where 
 id = a.sample_id
returning * 
-----------------------------------------------------

Может быть потом опишу подробнее