Fix serveral tests pass regardless of whether data is valid or not
Fix transactions do not get rollbacked in saveAssociated/saveMany

Refs #2849
Add some more transaction tests

And remove 2 else clauses.
Merge pull request #4140 from chinpei215/master-issue2849-fix

Fix transactions do not get rollbacked in saveAssociated/saveMany.

Fixes #2849