Примерно так должно работать (при условии, что вы работаете с версией Postgres, которая действительно поддерживает операторы JSON). Обратите внимание, что функция 'set' здесь работает только в JSONB, поэтому вам может потребоваться привести столбец до / после:
SELECT JSONB_SET(
hotel_info #> '{hotel, room_details, customer_detail}'
, '{first_name}'
, '"bbb"'
, create_missing FALSE) AS hotel_info_modified
FROM table
Здесь я меняю имя на «bbb» для примера. Проверьте, что это действительно предполагаемое поведение с помощью SELECT, и затем вы можете перейти к ОБНОВЛЕНИЮ, где это необходимо.