Are you getting any errors in the console?
Are all needed associations set? Sometimes there are many associations and you miss one or use the wrong one.
Are there any Before/After Commit events that may change data?
In these situations, I would normally check in the database by cross checking if the committed items really exist in database. If it does not exist, then it means the commit did not happen.
While debugging, if you see items, it means it is in cache and not necessarily persisted to database. Sometimes if the transaction fails with errors, then the entire changes will be rolled back too.
It might be good to check the following too: