code: public final V invoke (Connection conn, DatabaseLiaison liaison)
          throws SQLException, PersistenceException
      {
          List<Statement> stmts = new ArrayList<Statement>(1);
          conn = JDBCUtil.makeCollector(conn, stmts);
          try {
              return cleanInvoke(conn, liaison);
          } finally {
              // if closing a statement throws an SQLException, we don't attempt to close the rest of
              // the statements -- an SQLException thrown on close is a problem with the underlying
              // connection and the SimpleRepository closes the connection when it gets an exception
              // like that; the resources for the remaining statements will be collected in that case
              for (Statement stmt : stmts) {
                  JDBCUtil.close(stmt);
              }
          }
      }
docs: Invokes {@link #cleanInvoke} and then closes any statements opened by that call.