У меня есть следующий UPSERT в PostgreSQL 9.5:
INSERT INTO chats ("user", "contact", "name") 
           VALUES ($1, $2, $3), 
                  ($2, $1, NULL) 
ON CONFLICT("user", "contact") DO NOTHING RETURNING id;
Если конфликтов нет, он возвращает что-то вроде этого:
----------
    | id |
----------
  1 | 50 |
----------
  2 | 51 |
----------
Но если есть конфликты, он не возвращает никаких строк:
----------
    | id |
----------
Я хочу вернуть новые столбцы id, если нет конфликтов или возвращать существующие столбцы id конфликтующих столбцов. 
 Можно ли это сделать? Если это так,  как?
