docs: @Override
      public int[] withBatch(int batchSize, Closure closure) throws SQLException {
          batchData = new ArrayList<Object>();
          withinDataSetBatch = true;
          closure.call(this);
          withinDataSetBatch = false;
          if (batchData.isEmpty()) {
              return EMPTY_INT_ARRAY;
          }
          Closure transformedClosure = new Closure(null) {
              public void doCall(BatchingPreparedStatementWrapper stmt) throws SQLException {
                  for (Object next : batchData) {
                      stmt.addBatch(new Object[]{next});
                  }
              }
          };
          return super.withBatch(batchSize, buildMapQuery(), transformedClosure);
      }