Which part of "you have to change the code" is not clear? It has been suggested/repeated multiple times.
JCL can test for a particular condition code, but it CANNOT set it for a previous step. If step2 needs to set a particular conditon code, then whatever is the code for step2 needs to be modified to make this happen.
Abnormal termination is content of mail to notify the audiences for failure of job.
You (and probably your organization) are mistaken about what is an "abend". Conditionally executing or not executing some step due to condition codes is NOT an abend - regardless of what your organization wants to call it. There are 2 kinds of abends - Sxxx for "system abends" and Unnnn for "user abends".