code: @Override
  	public void writeRecord(OUT tuple) throws IOException {
  		try {
  			if (query.split("\\?,").length != tuple.getArity()) {
  				close();
  				throw new IOException("Tuple size does not match columncount");
  			}
  			if (types == null) {
  				extractTypes(tuple);
  			}
  			addValues(tuple);
  			upload.addBatch();
  			batchCount++;
  			if (batchCount >= batchInterval) {
  				upload.executeBatch();
  				batchCount = 0;
  			}
  		} catch (SQLException sqe) {
  			close();
  			throw new IllegalArgumentException("writeRecord() failed", sqe);
  		} catch (IllegalArgumentException iae) {
  			close();
  			throw new IllegalArgumentException("writeRecord() failed", iae);
  		}
  	}
docs: Adds a record to the prepared statement.
  <p>
  When this method is called, the output format is guaranteed to be opened.
  
  @param tuple The records to add to the output.
  @throws IOException Thrown, if the records could not be added due to an I/O problem.