code: @Override
    public void setSeries(final String metric, final Map<String, String> tags) {
      IncomingDataPoints.checkMetricAndTags(metric, tags);
      try {
        row_key = IncomingDataPoints.rowKeyTemplate(tsdb, metric, tags);
        RowKey.prefixKeyWithSalt(row_key);
        reset();
      }
      catch (RuntimeException e) {
        throw e;
      }
      catch (Exception e) {
        throw new RuntimeException("Should never happen", e);
      }
    }
docs: Sets the metric name and tags of this batch. This method only need be
  called if there is a desire to reuse the data structure after the data has
  been flushed. This will reset all cached information in this data structure.
  @throws IllegalArgumentException if the metric name is empty or contains
  illegal characters or if the tags list is empty or one of the elements
  contains illegal characters.