A la primera parte te digo que lo de usar
create es la forma de trabajar de
CakePHP. En la documentación dice:
Cita: Initializes the model for writing a new record, loading the default values for those fields that are not defined in $data. Especially helpful for saving data in loops.
Creo que es bastante claro. Después de hacer un
save, si quieres guardar otro registro diferente tienes que llamar a
create.
No estoy muy seguro de esto pero creo que es porque después de hacer
save en
Modelo->id se guarda el
ID, ya sea
update o
insert. Al intentar hacer otro
save,
CakePHP piensa que es sobre el registro anterior, porque Modelo->id tiene un valor.
Sobre la segunda parte. Cuando haces un
save pasandole unos datos, si en esos datos hay un
ID definido y existente entonces
CakePHP hace un
update sobre el registro de la tabla. Si no se le pasa un
ID o no existe previamente en la tabla, entonces hace un
insert.
Así pues, respondiendo a tu pregunta, te lo tendrás que currar para diferenciar cuando existe y cuando no.
Lo mejor, si el bucle tiene muchos elementos y de cara a evitar hacer tantas consultas, es que intentes pasarle, además del nombre del equipo, el
ID si lo tuviera. Así te ahorrarías los
find.
CakePHP automatiza muchos procesos pero no hace milagros...