docs: public void sync(BatchExecutor batchExecutor, MappingConfig config, SingleDml dml) {
          if (config != null) {
              try {
                  String type = dml.getType();
                  if (type != null && type.equalsIgnoreCase("INSERT")) {
                      insert(batchExecutor, config, dml);
                  } else if (type != null && type.equalsIgnoreCase("UPDATE")) {
                      update(batchExecutor, config, dml);
                  } else if (type != null && type.equalsIgnoreCase("DELETE")) {
                      delete(batchExecutor, config, dml);
                  } else if (type != null && type.equalsIgnoreCase("TRUNCATE")) {
                      truncate(batchExecutor, config);
                  }
                  if (logger.isDebugEnabled()) {
                      logger.debug("DML: {}", JSON.toJSONString(dml, SerializerFeature.WriteMapNullValue));
                  }
              } catch (SQLException e) {
                  throw new RuntimeException(e);
              }
          }
      }