private void invokeDirty(RowData rowData, Exception e) {
        if (!multipleSink) {
            if (dirtySinkHelper != null) {
                dirtySinkHelper.invoke(rowData.toString(), DirtyType.BATCH_LOAD_ERROR, e);
            }
            sinkMetricData.invokeDirtyWithEstimate(rowData);
        } else {
            if (dirtySinkHelper != null) {
                dirtySinkHelper.invoke(rowData.toString(), DirtyType.BATCH_LOAD_ERROR, label, logtag, identifier, e);
            }
            metric[2] += 1;
            metric[3] += CalculateObjectSizeUtils.getDataSize(rowData);
        }
    }
A {@link JdbcBatchStatementExecutor} that simply adds the records into batches of {@link
java.sql.PreparedStatement} and doesn't buffer records in memory. Only used in Table/SQL API.
Supported executors:TableBufferedStatementExecutor, TableBufferReducedStatementExecutor, TableSimpleStatementExecutor
inlong-sort/sort-flink/sort-flink-v1.13/sort-connectors/jdbc/src/main/java/org/apache/inlong/sort/jdbc/internal/TableMetricStatementExecutor.java