code: private long invoke(Operation operation) {
          if (getNodeEngine().getClusterService().getClusterVersion().isLessThan(Versions.V3_10)) {
              throw new UnsupportedOperationException(
                      "PNCounter operations are not supported when cluster version is less than 3.10");
          }
          return invokeInternal(operation, EMPTY_ADDRESS_LIST, null);
      }
docs: Invokes the {@code operation}, blocks and returns the result of the
  invocation.
  If the member on which this method is invoked is a lite member, the
  operation will be invoked on a cluster member. The cluster member is
  chosen randomly once the first operation is about to be invoked and if
  we detect that the previously chosen member is no longer a data member
  of the cluster.
  This method may throw a {@link ConsistencyLostException}
  if there are no reachable replicas which have observed the updates
  previously observed by users of this proxy. This means that the session
  guarantees are lost.
  
  @param operation the operation to invoke
  @return the result of the invocation
  @throws NoDataMemberInClusterException if the cluster does not contain any data members
  @throws UnsupportedOperationException  if the cluster version is less than 3.10
  @throws ConsistencyLostException       if the session guarantees have been lost
  @see ClusterService#getClusterVersion()