"Transaction silently rolled back because it has been marked as rollback-only" during runtimeService.createSignalEvent

We have the following code:

        try {
            this.runtimeService.createSignalEvent(TASK_SIGNAL_NAME)
                    .executionId(executionId)
                    .setVariables(variables)
                    .send();
        } catch (ProcessEngineException e) {
            log.warn("Failed to send signal because execution {} has not subscribed to a signal event with name {}",
                    executionId, TASK_SIGNAL_NAME);
        }

In other words, we just want to fail silently when sending signal even when nothing is subscribed to that signal event. I had to do this because:

 runtimeService.createExecutionQuery().signalEventSubscriptionName(TASK_SIGNAL_NAME)

… cannot see its own execution during create task @EventListener for some reason, and thus, we cannot check before sending the signal. However, it works for other events, e.g. assignment and update.

Any clue how to solve this?