public T build() {
      Table tableStore = getTableStore();
      if (generateWatermark) {
        if (insideTransaction != null) {
          return updateWithWatermark(insideTransaction, false);
        } else {
          Transaction transaction = tableStore.newTransaction();
          return updateWithWatermark(transaction, true);
        }
      } else {
        if (insideTransaction != null) {
          return updateWithoutWatermark(transactionDelegateSupplier(insideTransaction));
        } else {
          return updateWithoutWatermark(tableStoreDelegateSupplier(tableStore));
        }
      }
    }
Abstract implementation of {@link PendingUpdate}, adding mixed-format logics like tracing and
watermark generating for iceberg operations.

@param <T> Java class of changes from this update; returned by {@link #apply} for validation.
amoro-format-iceberg/src/main/java/org/apache/amoro/op/MixedUpdate.java