if source or target or Work flow or mappings are checked in state we can not delete or update those. those can be modified by user which is originally created by using cheeked out. if created user checked out,he can only can checked out. This nothing but a version control.
Check out & check in are users locks over WF/Session/source or target .A user has to checkOut a object for any modification. If the object is checked in it cant be modified any changes done by checking out will reflect on server only after checking in...we can run a wf at any state irrespective of whether it is checked in or out