code: protected <T> long processUpdateGroup(T[] arr, String groupType, String groupName, Collection<CpoWhere> wheres, Collection<CpoOrderBy> orderBy, Collection<CpoNativeFunction> nativeExpressions, Session sess) throws CpoException {
      CpoClass cpoClass;
      List<CpoFunction> cpoFunctions;
      CpoFunction cpoFunction;
      CassandraBoundStatementFactory boundStatementFactory = null;
      Logger localLogger = logger;
  
      try {
        cpoClass = metaDescriptor.getMetaClass(arr[0]);
        cpoFunctions = cpoClass.getFunctionGroup(getGroupType(arr[0], groupType, groupName, sess), groupName).getFunctions();
        localLogger = LoggerFactory.getLogger(cpoClass.getMetaClass());
  
        int numStatements=0;
        localLogger.info("=================== Class=<" + arr[0].getClass() + "> Type=<" + groupType + "> Name=<" + groupName + "> =========================");
        ArrayList<CassandraBoundStatementFactory> statemetnFactories = new ArrayList<>();
        for (T obj : arr) {
          for (CpoFunction function : cpoFunctions) {
            boundStatementFactory = new CassandraBoundStatementFactory(sess, this, cpoClass, function, obj, wheres, orderBy, nativeExpressions);
            statemetnFactories.add(boundStatementFactory);
            numStatements++;
          }
        }
  
        executeBatchStatements(sess, statemetnFactories);
  
        localLogger.info("=================== " + numStatements + " Updates - Class=<" + arr[0].getClass() + "> Type=<" + groupType + "> Name=<" + groupName + "> =========================");
  
      } catch (Throwable t) {
        String msg = "ProcessUpdateGroup failed:" + groupType + "," + groupName + "," + arr[0].getClass().getName();
        // TODO FIX This
        // localLogger.error("bound values:" + this.parameterToString(jq));
        localLogger.error(msg, t);
        throw new CpoException(msg, t);
      }
  
      return unknownModifyCount;
    }
docs: DOCUMENT ME!
  
  @param arr       DOCUMENT ME!
  @param groupType DOCUMENT ME!
  @param groupName DOCUMENT ME!
  @param sess       DOCUMENT ME!
  @return DOCUMENT ME!
  @throws CpoException DOCUMENT ME!