Not must, but should, I would say. Highly recommended. There are plenty of applications live normally without database constraints.
When app complexity and data volume grow database constraints bring more and more benefit, not allowing your app to have inconsistent data and related errors.
Using the unsignedBigInteger type is only about the column's ability to store the data, while using a foreign key constraint is about ensuring the data is correct and related. I think it's always better to use the foreign key constraint.