code: public LockedInodePath lockFinalEdgeWrite() throws InvalidPathException {
      Preconditions.checkState(!fullPathExists());
  
      LockedInodePath newPath =
          new LockedInodePath(mUri, this, mPathComponents, LockPattern.WRITE_EDGE);
      newPath.traverse();
      return newPath;
    }
docs: Returns a copy of the path with the final edge write locked. This requires that we haven't
  already locked the final edge, i.e. the path is incomplete.
  
  @return the new locked path