[Multi-Select patch SPLIT] Part-One

For now, this is in addition to the older API ::
       def write(metadata, file_path, update_mtime=False)

Using the new API serves the following purpose ::
       * Clearer name <===> Clearer intention
       * Just one argument ("metadata")
       * The code-workflow is MUCH clearer.