There are no optional triggers, so the rule should(!) always start.
You might code for locking; whether your code waits or skips is up to you, your choice.
Example
A regular xxx.lock() always queues, hence the risk of a seizure when enough queued rules have grabbed threads.