Obtener Id de un INSERT condicional

Para una mesa como esta:

CREATE TABLE Users(
    id SERIAL PRIMARY KEY,
    name TEXT UNIQUE
);

¿Cuál sería la inserción correcta de una consulta para la siguiente operación:

Dado un usuarioname, inserte un nuevo registro y devuelva el nuevoid. Pero si elname ya existe, solo devuelva elid.

Soy consciente de la nueva sintaxis dentro de PostgreSQL 9.5 paraON CONFLICT(column) DO UPDATE/NOTHING, pero no puedo entender cómo, si es que puede ayudar, dado que necesito elid ser devuelto.

Parece queRETURNING id yON CONFLICT No pertenecen juntos.

Respuestas a la pregunta(2)

Su respuesta a la pregunta