You say that you want to use channels for flow control. This is not what channels are for. They are a construct modelling a sub-chain for privacy purposes. A channel exists on a specified set of peers and runs chaincode or chaincodes that are relevant to the channel's purpose (often a set of transactions between specific participants that require privacy).
Flow control, on the other hand, is required on a single channel and chaincode combination as key clashes in the same database partition are fatal to a transaction. A key clash happens when a transaction in a block is trying to commit a change to a key that a previous transaction in the same block has already changed. The transaction is immediately failed and that is recorded in the block.