There's more...

Unique and exclusion constraints can be marked as deferrable, meaning that the user can choose to postpone the check to the end of the transaction, a nice way to relax constraints without reducing data integrity. However, as of PostgreSQL 10, there are a few limitations that you should be aware of; the restrictions are as follows:

It's likely that these restrictions will be lifted in later releases.