Hello Jake,
Hope you are doing well.
Usually, that is done using what is called as CRUD wrapper actions. Basically, you may create a Public server action which is going to call your CreateOrUpdate entity action (in PROJ_DB module). Then you just need to add this created action (CRUD wrapper) as a dependency in your PROJ_BK module and use it. This will allow you to maintain your entities as Read Only in your PROJ_DB module.
There are a lots of reasons to use this practice, instead of using entity actions directly. The main reason is related with the possibility to have a centralized location for any additional logic related with a create, delete, update or read of a record. Imagine for example that you want to have default values for some attributes everytime you want to create a new record. You may just place this logic in this wrapper and have a centralized location :)
Please, check this article written by MVP Justin James that should allow you to understand why this is a good practice and several benefits about using CRUD wrappers.
Hope that this helps you!
Kind regards,
Rui Barradas