Lo que sucede, es que el bloque que adjunta dicho archivo está dentro del bloque que usa $_FILES, por lo cual si no existe ningún upload por ende no se adjunta nada.
Intenta mover dicho bloque de código a un punto donde si se ejecute independientemente de si se subió o no un archivo.