@Override
  protected boolean holdLock(MasterProcedureEnv env) {
    // here we want to make sure that our modification result will not be overwrite by other MTPs,
    // so we set holdLock to true. Since we do not need to schedule any sub procedures, especially
    // no remote procedures, so it is OK for us a hold the lock all the time, it will not hurt the
    // availability too much.
    return true;
  }
Sub class should implement this method to modify the table descriptor, such as storing the rs
group information.
<p/>
Since the migrating is asynchronouns, it is possible that users have already changed the rs
group for a table, in this case we do not need to modify the table descriptor any more, then
you could just return {@link Optional#empty()}.
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableDescriptorProcedure.java