code: public void execute() throws IOException {
          try {
              prepare();
  
              boolean commitResult = commit();
              if (commitResult == false) {
                  throw PatchLogger.ROOT_LOGGER.failedToDeleteBackup();
              }
          } catch (PrepareException pe){
              rollback();
  
              throw PatchLogger.ROOT_LOGGER.failedToDelete(pe.getPath());
          }
  
      }
docs: remove files from directory. All-or-nothing operation - if any of the files fails to be removed, all deleted files are restored.
  
  The operation is performed in two steps - first all the files are moved to a backup folder, and afterwards backup folder is removed.
  If an error occurs in the first step of the operation, all files are restored and the operation ends with status {@code false}.
  If an error occurs in the second step, the operation ends with status {@code false}, but the files are not rolled back.
  
  @throws IOException if an error occurred