I often have to merge data from different tables in PostgreSQL, this is a code snippet I use:

MERGE
INTO
	users u
		USING new_users n ON
	u.user_uuid = n.user_uuid
	WHEN NOT MATCHED THEN
INSERT
VALUES (n.user_uuid,
n.first_name,
n.last_name)
WHEN MATCHED THEN
UPDATE
SET
	first_name = n.first_name,
	last_name = n.last_name
  RETURNING u.*;