Si necesita el PK de la fila que acaba de insertar (o cualquier expresión que use las columnas de la tabla), puede usar la cláusula RETURNING. Documentos:cláusula RETURNING
Ej.
test=# create table a (id serial, val text);
NOTICE: CREATE TABLE will create implicit sequence "a_id_seq" for serial column "a.id"
CREATE TABLE
test=# insert into a (val) values ('foo') returning id;
id
----
1