Em primeiro lugar, você tem certeza de que precisa de toda a tabela na memória? Talvez você deva considerar (se possível) selecionar as linhas que deseja atualizar/mesclar/etc. Se você realmente precisa ter a tabela inteira, considere usar um ResultSet rolável. Você pode criar assim.
// make sure autocommit is off (postgres)
con.setAutoCommit(false);
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, //or ResultSet.TYPE_FORWARD_ONLY
ResultSet.CONCUR_READ_ONLY);
ResultSet srs = stmt.executeQuery("select * from ...");
Ele permite que você mova para qualquer linha desejada usando métodos 'absolutos' e 'relativos'.