関数のロジックは複数メソッド間に散らばっている場合、トランサクションスコープはどうですか?

下記例を考慮、functionA のempDao更新処理と functionBのclassInfoDao更新処理は同一トランサクションですか?現在コーディングの条件は複数関数利用しないといけないので、なんかいい方法がありますか?

functionA() {
    TransactionManager tm = AppConfig.singleton().getTransactionManager();
    emp.setGroupNo("100");
    int updateResult = tm.required(() -> {
        return empDao.update(emp);
    };
    functionB(emp.getEmployeeNo(), emp.getGroupNo());
}

int functionB(String empNo, String groupNo) {
    TransactionManager tm = AppConfig.singleton().getTransactionManager();
    int updateResult = tm.required(() -> {
        int result = 0;
        List<ClassInfo> classList = classDao.selectById(empNo);
        for(ClassInfo class in classList) {
            class.setGroupNo(groupNo);
            result = classInfoDao.update(emp);
            if (result < 0) { break; }
        }
        return result;
    };
    return updateResult;
}