This is really a question about concurrency: How do you have multiple users modifying the same business objects and be confident each of their edits will be saved successfully.
If you are storing your objects in the cache, you can create a partial object to include a "IsDirty" boolean property. As an item is checked, you set the IsDirty property of the relevant object to true.
There are many ways to handle concurrency and one way you can try is to check the IsDirty property when an item is checked. If the property is false, you set the property to true. If the property is already true, you send back an error to the user. Once the object is saved, you reset the IsDirty property back to false.
Things can get more and more complicated as you try to get more sophisticated with the rules you create for saving your objects.