The mechanism is proprietary and statistical. Typically the operator of the switch can adjust the CAC parameters to allow oversubscription, usually of the VBR-nrt, ABR and UBR classes. This increases the statistical probability that the service objectives will not be met, particularly for the non-realtime based classes, in congested periods. So oversubscription is a CAC function. There is a real time queueing and priority system which deals with each cell in the switch.
Some switches have class queues and some have per-VC queueing.
All of this is vendor specific. The complication is the AAL used by the application. Typically with AAL1, which is used for many CBR applications, the AAL1 frames are emitted at the PVC peak cell rate, even if there is no user data. The ATM switch will forward these cells at the highest priority, end to end. This will save you quite a bit over a private line solution.