Try the ILifeCycle interface instead. I've never used interceptors, but have had great success with ILifeCycle.
ILifeCycle is an interface that the BLL.Supplier class should implement. It gives you an opportunity to modify the state of a persistent object at key points (load, save, update, etc), and allow you to silently veto operations like save or update.
There is a brief article
here on the interface. It explains it well.
Also, make sure that in your mapping file, the SupplierId is mapped with a generator of "assigned", with an appropriate unsaved-value (for guids, this should be "00000000-0000-0000-0000-000000000000").