@Override
  public boolean backwardSeek(ExtendedCell key) throws IOException {
    seek(key);
    if (cur == null || getComparator().compareRows(cur, key) > 0) {
      return seekToPreviousRow(key);
    }
    return true;
  }
Seeks before the seek target cell and saves the location to {@link #previousRow}. If there
doesn't exist a KV in this file before the seek target cell, reposition the scanner at the
beginning of the storefile (in preparation to a reseek at or after the seek key) and set the
{@link #previousRow} to null. If {@link #previousRow} is ever non-null and then transitions to
being null again via this method, that's because there doesn't exist a row before the seek
target in the storefile (i.e. we're at the beginning of the storefile)
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java