Ejecute múltiples consultas como una transacción dblink

Estoy trabajando en una aplicación Java donde necesito ejecutar estas dos consultas (como cadenas en Java) al mismo tiempo y deshacer la transacción si hay errores.

SELECT dblink_exec('hostaddr=xxx.xx.xxx.xxx port=5432 dbname=bdname user=myuser password=mypass connect_timeout=2',
'INSERT INTO table3(field4) 
VALUES (5)') AS result;

SELECT dblink_exec('hostaddr=xxx.xx.xxx.xxx port=5432 dbname=bdname user=myuser password=mypass connect_timeout=2',
'UPDATE table1 SET field2 = field2 + 3.0 WHERE field1 = 16436') AS result;

ACTUALIZAR

Creé una cadena con las dos consultas separadas con; como en los comentarios sugieren

ACTUALIZAR

He intentado transacciones atómicas JDBC como el código en Java. Forzo el segundo error de sql pero incluso si estoy especificando .setAutoCommit (false); el dblink afectó a la otra base de datos con la primera consulta. Intenté el mismo código sin transacciones dblink y la reversión funciona bien. dblink es el problema.

ACTUALIZACIÓN Java

public static boolean ejecutarTransaccionDblink(String sql) {
    boolean estado = false;
    try {
        Statement sentencia = conexion.createStatement();
        conexion.setAutoCommit(false);
        if (sql.length() != 0) {
            if (sentencia.execute(sql)) {
                conexion.commit();
                estado = true;
            }
        }
    } catch (SQLException ex) {
        System.out.println(ex.toString());
        try {
            estado = false;
            conexion.rollback();
        } catch (SQLException ex1) {
        }
    } finally {
        try {
            conexion.setAutoCommit(true);
            return estado;
        } catch (SQLException ex) {
            return estado;
        }
    }
}

Gracias por tu ayuda.

Respuestas a la pregunta(2)

Su respuesta a la pregunta