Com o PostgreSQL você pode fazer isso através da palavra-chave RETURNING:
PostgresSQL - RETORNANDO
INSERT INTO mytable( field_1, field_2,... )
VALUES ( value_1, value_2 ) RETURNING anyfield
Ele retornará o valor de "qualquer campo". "anyfield" pode ser uma sequência ou não.
Para usá-lo com JDBC, faça:
ResultSet rs = statement.executeQuery("INSERT ... RETURNING ID");
rs.next();
rs.getInt(1);