We are designing an application with a chaincode that holds asset information including product quantity. One of the functions the chaincode needs to support is aggregating multiple input products into an output and creating a new asset. Once this executes, the original input batches must be reduced with the corresponding quantity so that they cannot be double-spent. My concern is whether having multiple getStates (to compare remaining quantity of an input batch) and putStates (to save the updated quantity) in a function will lead to a MVCC error? If so, what will be the correct way of designing such a logic?