In short yes. Both can be used. FC deals only what can be removed outside the camera view. What's inside the view or to be occluded is a more difficult proposition. There are few techniques for occlusion and i don't go into too much detail but you will find a couple of simple methods may improve your performance.
Dynamic occlusion, that is within each frame is challenging performance wise. Unless the objects you are testing are geometrically or complex shader wise you won't see as much of a benefit using some of the more advanced shader techniques. What you can do though to improve performance through occlusion is to get the hardware to work for you.
What i mean is to order your objects in your visible set from front to back. What this gives you is the ability to remove over draw by leveraging the z buffer. The z buffer itself in modern hardware is very fast. This effectively eliminates unnecessary draw actions to your back buffer. And in some cases it's faster as occlusion has edge cases where you end drawing the whole object even if only 1 pixel is exposed.
For static scenes, where criticality of frame time is not an issue, you can get into possible viewable sets (PVS) and this can test whether parts of your static scene can be seen from other parts. This where you can leverage bsp or quad yes to break your world up then test parts against other parts.
It's just a start. There are a number of books on the market talking about occlusion and how to achieve it. Gl
Edit: just to add. No, specifically implemented occlusion may not be in every graphics engine but some form most likely used and in some of the more defunct gpus designs such as tile renderer based would have a form of occlussion built in. To also dd. Using FC before OC makes the process of occlusion faster by only testing to the PVS possible viewable set.
Link to powervr which has an engineer talking about powervr vs radeon and nvidia https://www.imgtec.com/blog/a-look-at-the-powervr-graphics-architecture-tile-based-rendering/