merge into 사용

postgres에서 항목이 있으면 수정을 하고, 없으면 추가를 할려고 merge into를 찾아보니 없다.
그러나 비슷한게 있었다.

WITH UPSERT AS (
	UPDATE test SET
		value1 = '값1',
		value2 = '값2'
	WHERE serial_id='serial_id' RETURNING *
)
INSERT INTO test (value1, value2)
SELECT '값1', '값2'
WHERE NOT EXISTS (
	SELECT value1, value2
	FROM UPSERT
) RETURNING serial_id

test 테이블에 value1, value2를 추가를 하는데 serial_id를 기준으로 있으면 수정, 없으면 삭제