private Pair<Boolean, Tag> checkForReservedVisibilityTagPresence(ExtendedCell cell,
    Pair<Boolean, Tag> pair) throws IOException {
    if (pair == null) {
      pair = new Pair<>(false, null);
    } else {
      pair.setFirst(false);
      pair.setSecond(null);
    }
    // Bypass this check when the operation is done by a system/super user.
    // This is done because, while Replication, the Cells coming to the peer cluster with reserved
    // typed tags and this is fine and should get added to the peer cluster table
    if (isSystemOrSuperUser()) {
      // Does the cell contain special tag which indicates that the replicated
      // cell visiblilty tags
      // have been modified
      Tag modifiedTag = null;
      Iterator<Tag> tagsIterator = PrivateCellUtil.tagsIterator(cell);
      while (tagsIterator.hasNext()) {
        Tag tag = tagsIterator.next();
        if (tag.getType() == TagType.STRING_VIS_TAG_TYPE) {
          modifiedTag = tag;
          break;
        }
      }
      pair.setFirst(true);
      pair.setSecond(modifiedTag);
      return pair;
    }
    Iterator<Tag> tagsItr = PrivateCellUtil.tagsIterator(cell);
    while (tagsItr.hasNext()) {
      if (RESERVED_VIS_TAG_TYPES.contains(tagsItr.next().getType())) {
        return pair;
      }
    }
    pair.setFirst(true);
    return pair;
  }
Checks whether cell contains any tag with type as VISIBILITY_TAG_TYPE. This tag type is
reserved and should not be explicitly set by user.
@param cell The cell under consideration
@param pair An optional pair of type {@code <Boolean, Tag>} which would be reused if already
            set and new one will be created if NULL is passed
@return If the boolean is false then it indicates that the cell has a RESERVERD_VIS_TAG and
        with boolean as true, not null tag indicates that a string modified tag was found.
hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java