Is my assumption correct?
Yes.
If so, how can I check the rules in the BeforeSave event and if an error cancel the SAVE and display the error?
You will want to handle the BusinessRulesChecked event as this will give you what you need and allow you to even force a save if you so choose.