Con PostgreSQL puoi farlo tramite la parola chiave RETURNING:
PostgresSQL - RESTITUZIONE
INSERT INTO mytable( field_1, field_2,... )
VALUES ( value_1, value_2 ) RETURNING anyfield
Restituirà il valore di "anyfield". "anyfield" può essere una sequenza o meno.
Per usarlo con JDBC, fai:
ResultSet rs = statement.executeQuery("INSERT ... RETURNING ID");
rs.next();
rs.getInt(1);