Non esiste alcuna funzione per sostituire la chiave json, quindi dovresti eliminare il vecchio oggetto e aggiungerne uno nuovo:
update moves
set data = jsonb_set(
data::jsonb,
array['boxes'],
(data->'boxes')::jsonb - 'book' || jsonb_build_object('book_new', data->'boxes'->'book')
)
where data ->> 'boxes' like '%book%'
returning *;
data
------------------------------------------------------
{"boxes": {"moving": 2, "book_new": 2}, "goods": {}}
(1 row)