OK, but understand that in Database and database terms "t1col1 foreign key" is invalid term. It is not a foreign key relationship in a database. You can say that the field can store either the PK id from tab3 or tab4, but there cannot be any referential integrity called a Foreign Key.
Your solutions are down to needing to add another field to say whether it is from tab3 or tab4, and also you will probably want to create a CompositeUserType, see Hibernate's documentation on how to implement that.