Given subscription preferences need to go back to customer data, which is very customer specific and most implementations need a better control of it, the OOTB implementation does not directly update the Customer data.
Often implementations do this based on the microsite request to initiate a background process to update the customer data (either through a work object review process or directly programatically)
Also Pega Marketing has the "Exclusion List" feature which is nothing but a global segment that could be added with criterias to exclude your unsubscribed customers (see page 345 of the same doc above)
So lets say if your background process updates Customer.sendEmail to false in the unsubscribe microsite path, then your Exclusion list segment could have a criteria saying "Customer.sendEmail" as false as well.
Most cases, the exclusion list segments will run on a daily schedule which kind of updates the latest customers who have un-subscribed.
The exclusion list is OOTB part of all your future campaign outbound - and the customer would not get the email or even part of the target to run the strategy, given now they are now part of that list. You can tweak your exclusion list segment schedule based on your business needs.
You can also refer the Customer.sendEmail flag for example in strategies or offers to have much more granular control - which is most cases is not needed.
Note : (Customer.sendEmail is not shipped OOTB, its just an example to explain the use case)
Hope this helps in you thinking about how you could implement unsubscribe into your project.