Is your feature request related to a problem? Please describe.
It would be nice if we could expose the lock interface to the user so that they can utilize their own locks without having to re-initialize the entire lock interface within their pipeline.
Describe the solution you'd like
Every DataContext object should have create_resource_lock, lock_resource, and unlock_resource functions that map to the underlying PipelineLock interface.
Describe alternatives you've considered
N/A
Additional context
N/A