If they are defined, they can override table-level settings.
{
            storage.unlockSharedData(*part);
            transaction.rollback();
            throw Exception("Unrecoverable network error while adding block " + toString(block_number) + " with ID '" + block_id + "': "
                            + Coordination::errorMessage(multi_code), ErrorCodes::UNEXPECTED_ZOOKEEPER_ERROR);
        }
        else
        {
            storage.unlockSharedData(*part);
            transaction.rollback();
            throw Exception("Unexpected ZooKeeper error while adding block " + toString(block_number) + " with ID '" + block_id + "': "
                            + Coordination::errorMessage(multi_code), ErrorCodes::UNEXPECTED_ZOOKEEPER_ERROR);
        }
        break;
    }
    if (quorum)
    {
        if (is_already_existing_part)
        {
            
            
            if (zookeeper->exists(storage.zookeeper_path + "/quorum/parallel/" + part->name))
                storage.updateQuorum(part->name, true);
            else if (zookeeper->exists(storage.zookeeper_path + "/quorum/status"))
                storage.updateQuorum(part->name, false);
        }
        waitForQuorum(zookeeper, part->name, quorum_info.status_path, quorum_info.is_active_node_value);
    }
}
void ReplicatedMergeTreeSink::onStart()