code: protected <T> long processUpdateGroup(Collection<T> coll, String groupType, String groupName, Collection<CpoWhere> wheres, Collection<CpoOrderBy> orderBy, Collection<CpoNativeFunction> nativeExpressions, Connection con) throws CpoException {
      long updateCount = 0;
  
      if (!coll.isEmpty()) {
        T[] arr = (T[]) coll.toArray();
  
        T obj1 = arr[0];
        boolean allEqual = true;
        for (int i = 1; i < arr.length; i++) {
          if (!obj1.getClass().getName().equals(arr[i].getClass().getName())) {
            allEqual = false;
            break;
          }
        }
  
        if (allEqual && batchUpdatesSupported_ && !JdbcCpoAdapter.PERSIST_GROUP.equals(groupType)) {
          updateCount = processBatchUpdateGroup(arr, groupType, groupName, wheres, orderBy, nativeExpressions, con);
        } else {
          for (T obj : arr) {
            updateCount += processUpdateGroup(obj, groupType, groupName, wheres, orderBy, nativeExpressions, con);
          }
        }
      }
  
      return updateCount;
    }
docs: DOCUMENT ME!
  
  @param coll              DOCUMENT ME!
  @param groupType         DOCUMENT ME!
  @param groupName         DOCUMENT ME!
  @param wheres            DOCUMENT ME!
  @param orderBy           DOCUMENT ME!
  @param nativeExpressions DOCUMENT ME!
  @param con               DOCUMENT ME!
  @return DOCUMENT ME!
  @throws CpoException DOCUMENT ME!