private void addSimpleEvent(int operation, long currentWriteId, long rowId, Object row)
      throws IOException {
    this.operation.set(operation);
    this.currentWriteId.set(currentWriteId);
    Integer currentBucket = null;
    // If this is an insert, originalWriteId should be set to this transaction.  If not,
    // it will be reset by the following if anyway.
    long originalWriteId = currentWriteId;
    if (operation == DELETE_OPERATION || operation == UPDATE_OPERATION) {
      Object rowIdValue = rowInspector.getStructFieldData(row, recIdField);
      originalWriteId = origWriteIdInspector.get(
          recIdInspector.getStructFieldData(rowIdValue, originalWriteIdField));
      rowId = rowIdInspector.get(recIdInspector.getStructFieldData(rowIdValue, rowIdField));
      currentBucket = setBucket(bucketInspector.get(
        recIdInspector.getStructFieldData(rowIdValue, bucketField)), operation);
    }
    this.rowId.set(rowId);
    this.originalWriteId.set(originalWriteId);
    item.setFieldValue(OrcRecordUpdater.OPERATION, new IntWritable(operation));
    item.setFieldValue(OrcRecordUpdater.ROW, (operation == DELETE_OPERATION ? null : row));
    indexBuilder.addKey(operation, originalWriteId, bucket.get(), rowId);
    initWriter();
    writer.addRow(item);
    restoreBucket(currentBucket, operation);
  }
The INSERT event always uses {@link #bucket} that this {@link RecordUpdater} was created with
thus even for unbucketed tables, the N in bucket_N file name matches writerId/bucketId even for
late split
ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcRecordUpdater.java