private boolean tagMatched(ExtendedCell put, TagInfo delInfo) throws IOException {
    List<Tag> putVisTags = new ArrayList<>();
    Byte putCellVisTagsFormat = VisibilityUtils.extractVisibilityTags(put, putVisTags);
    return putVisTags.isEmpty() == delInfo.tags.isEmpty()
      && ((putVisTags.isEmpty() && delInfo.tags.isEmpty())
        || VisibilityLabelServiceManager.getInstance().getVisibilityLabelService()
          .matchVisibility(putVisTags, putCellVisTagsFormat, delInfo.tags, delInfo.format));
  }
Similar to MvccSensitiveTracker but tracks the visibility expression also before deciding if a
Cell can be considered deleted
hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityNewVersionBehaivorTracker.java