Конструктор, injection и @PostConstruct выполняются при создании исходного bean. Обработчик AOP может обернуть его в proxy только после этих шагов, поэтому вызов метода через this в ранней фазе не проходит через interceptor chain транзакций.
Инициализацию, которой действительно нужна транзакция, лучше запускать после готовности context через отдельный bean и обычный вызов через proxy. Тот же принцип объясняет, почему self-invocation обходит @Transactional и другие AOP-аннотации.
Подробнее: Как Spring создаёт Bean: от BeanDefinition до Proxy.