public boolean runInTransaction(Runnable exec) {
    boolean success = false;
    try {
      if (openTransaction()) {
        exec.run();
        success = commitTransaction();
      }
    } catch (Exception e) {
      LOG.warn("Metastore operation failed", e);
    } finally {
      rollbackAndCleanup(success, null);
    }
    return success;
  }
Called right before an action that would drop a storage descriptor.
This function makes the SD's reference to a CD null, and then deletes the CD
if it no longer is referenced in the table.
@param msd the storage descriptor to drop
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java