@Override
  public DeleteTracker postInstantiateDeleteTracker(
    ObserverContext<? extends RegionCoprocessorEnvironment> ctx, DeleteTracker delTracker)
    throws IOException {
    // Nothing to do if we are not filtering by visibility
    if (!authorizationEnabled) {
      return delTracker;
    }
    Region region = ctx.getEnvironment().getRegion();
    TableName table = region.getRegionInfo().getTable();
    if (table.isSystemTable()) {
      return delTracker;
    }
    // We are creating a new type of delete tracker here which is able to track
    // the timestamps and also the
    // visibility tags per cell. The covering cells are determined not only
    // based on the delete type and ts
    // but also on the visibility expression matching.
    return new VisibilityScanDeleteTracker(delTracker.getCellComparator());
  }
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