postgres jsonb_set mise à jour de plusieurs clés

J'ai de la table DB avec jsonb colonne.

number  | data
    1   | {"name": "firstName", "city": "toronto", "province": "ON"}

J'ai besoin d'un moyen de mettre à jour les données de la colonne.
Donc ma sortie devrait ressembler à:

{"name": "firstName", "city": "ottawa", "province": "ON", "phone": "phonenum", "prefix": "prefixedName"}

Est-il possible avec json_set?
J'ai ajouté de la requête comme:

update table_name set data = jsonb_set(data, '{city}', '"ottawa"') where number = 1;

Cependant, j'ai besoin d'un moyen d'ajouter une nouvelle clé-valeur si elle n'existe pas et la clé de mise à jour de la valeur si elle existe. Est-il possible de réaliser cela dans une seule requête?

source d'informationauteur phpfreak