code: public final Table modifyColumnFamilies(
        TableName name, List<ModifyColumnFamiliesRequest.Modification> modifications) {
  
      ModifyColumnFamiliesRequest request =
          ModifyColumnFamiliesRequest.newBuilder()
              .setName(name == null ? null : name.toString())
              .addAllModifications(modifications)
              .build();
      return modifyColumnFamilies(request);
    }
docs: Performs a series of column family modifications on the specified table. Either all or none of
  the modifications will occur before this method returns, but data requests received prior to
  that point may see a table where only some modifications have taken effect.
  
  <p>Sample code:
  
  <pre><code>
  try (BaseBigtableTableAdminClient baseBigtableTableAdminClient = BaseBigtableTableAdminClient.create()) {
  TableName name = TableName.of("[PROJECT]", "[INSTANCE]", "[TABLE]");
  List&lt;ModifyColumnFamiliesRequest.Modification&gt; modifications = new ArrayList&lt;&gt;();
  Table response = baseBigtableTableAdminClient.modifyColumnFamilies(name, modifications);
  }
  </code></pre>
  
  @param name The unique name of the table whose families should be modified. Values are of the
  form `projects/&lt;project&gt;/instances/&lt;instance&gt;/tables/&lt;table&gt;`.
  @param modifications Modifications to be atomically applied to the specified table's families.
  Entries are applied in order, meaning that earlier modifications can be masked by later
  ones (in the case of repeated updates to the same family, for example).
  @throws com.google.api.gax.rpc.ApiException if the remote call fails