docs: public void close() throws SQLException {
      if (!closed) {
        // flush any open output streams
        if (os != null) {
          try {
            // we can't call os.close() otherwise we go into an infinite loop!
            os.flush();
          } catch (IOException ioe) {
            throw new PSQLException("Exception flushing output stream", PSQLState.DATA_ERROR, ioe);
          } finally {
            os = null;
          }
        }
  
        // finally close
        FastpathArg[] args = new FastpathArg[1];
        args[0] = new FastpathArg(fd);
        fp.fastpath("lo_close", args); // true here as we dont care!!
        closed = true;
        if (this.commitOnClose) {
          this.conn.commit();
        }
      }
    }