@Override
    public void addVersionDelete(ExtendedCell cell) {
      SortedMap<Long, TagInfo> set = deletesMap.get(cell.getTimestamp());
      if (set == null) {
        set = new TreeMap<>();
        deletesMap.put(cell.getTimestamp(), set);
      }
      set.put(cell.getSequenceId(), new TagInfo(cell));
      // The init set should be the puts whose mvcc is smaller than this Delete. Because
      // there may be some Puts masked by them. The Puts whose mvcc is larger than this Delete can
      // not be copied to this node because we may delete one version and the oldest put may not be
      // masked.
      SortedSet<Long> nextValue = mvccCountingMap.ceilingEntry(cell.getSequenceId()).getValue();
      SortedSet<Long> thisValue = new TreeSet<>(nextValue.headSet(cell.getSequenceId()));
      mvccCountingMap.put(cell.getSequenceId(), thisValue);
    }
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