All components (client, resource PC, app server) need to be the same, you can't mix versions. Each BP version has a corresponding database structure and this is the first thing BP does when it connects. If the DB version does not match the BP version, then you can't connect.
So in simplistic terms, it's 'all or nothing', and the upgrade has to be applied to all components in one go. The trick is to create a sandbox upgrade environment that is separate from Prod. While you're implementing and testing the upgrade in the sandbox, Prod remains operational on the old version. Then when you're happy with the new version and your processes are working as they did in the old version, you make the switch. I'm paraphrasing here as it requires careful planning and execution.