I have a scenario where I have to insert data into multiple tables. If one query fails then I want to rollback the last executed query

My Service method is 

```
@Service
@Transactional
public class ServiceNameImpl implements ServiceName{
    @Autowired
    private ABCRepository abcRepository;

    @Autowired
    private BCDRepository bcdRepository;

    @Override
    public SChResource save(SchData schData){
        SchSch sch = new SchSch();
        Contact con = new Contact();
        sch.setName(schData.getName());
        abcRepository.save(sch);  --first insertion
        con.setAddress(schData.getAddress());
        bcdRepository.save(con);  --second insertion
        return null;
    }
}

```

I want if first insertion executes and second insertion fail then the first insertion will rollback and if first insertion fails and second insertion executes then second insertion will rollback.

Please suggest me what should I do.