Cláusula returning - Firebird 2.5 [ RESOLVIDO ]

public Integer Salvar (Bolao dados) throws SQLException{
    int ID = -1;
    String SQL;
    SQL = "INSERT INTO BOLAO (NOME, TELEFONE, OBSERVACAO, JOGO) VALUES (?,?,?,?) returning ID";
    PreparedStatement insereSt = null;
    Connection cnx = FabricaConexao.getInstance().getConexao();
    
    try {
        cnx.setAutoCommit(false);
        insereSt =(FirebirdPreparedStatement) cnx.prepareStatement(SQL);
        insereSt.setString(1, dados.getNome());
        insereSt.setString(2, dados.getTelefone());
        insereSt.setString(3, dados.getObservacao());
        insereSt.setString(4, dados.getJogo().toString());
        
        ResultSet rs = insereSt.executeQuery();
        //insereSt.executeUpdate();
        cnx.commit();
        
        rs.next();
        ID = rs.getInt("ID");
        
        rs.close();
    } catch (SQLException e) {
        cnx.rollback();
        cnx.setAutoCommit(true);
        JOptionPane.showMessageDialog(null, "Erro ao incluir: " + e.getMessage() + "\n");
    } finally {
        try {
            cnx.setAutoCommit(true);
            insereSt.close();
            return ID;
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "Erro ao encerrar conexão: " + e.getMessage());
        }
    }
    return ID;
}

Estou querendo fazer um INSERT e já retorna o ID que o banco gerou. Só que me é apresentada uma msg de erro, ResultSet is close.
Achei que ele estaria fechado pois nenhum valor estaria sendo retornado, então qnd realizei o insert direto no banco a ID me foi retornada.

Dá uma olhada nisso aqui que você vai ver o que está faltando:

https://stackoverflow.com/questions/4224228/preparedstatement-with-statement-return-generated-keys

Resolvido. OBRIGADO PARCEIRO! ABRAÇO!