HistoryEvent not firing on all variables

When creating a ProcessInstance via the the RuntimeService or passing execution to subProcess I will get a HistoricVariableUpdateEventEntity event for each variable that is created, sent to my implementation of HistoryEventHandler. So all good so far.

However when setting a variable within an implementation of JavaDelegate I receive no related history events.
i.e.

void execute(DelegateExecution execution) throws Exception {
        execution.setVariable("TEST", "TEST_VALUE");
}

Will set a Variable called TEST, but no HistoricVariableUpdateEventEntity is created for it.

Is this expected? or is there something I’m missing on setup?