docs: public <I, O> List<O> groupExecute(
          final Collection<ShardingExecuteGroup<I>> inputGroups, final ShardingGroupExecuteCallback<I, O> firstCallback, final ShardingGroupExecuteCallback<I, O> callback, final boolean serial)
          throws SQLException {
          if (inputGroups.isEmpty()) {
              return Collections.emptyList();
          }
          return serial ? serialExecute(inputGroups, firstCallback, callback) : parallelExecute(inputGroups, firstCallback, callback);
      }