By uploading, did you mean creating the article entity or uploading the .article content to the article entity or both?
If creating article entity, as jerwarren mentioned, the articleName is unique. If attempting to create an article entity with the same articleName, then it will fail and you'll have to check the response code for a HTTP 409 (see getResponse()). The script will not force quit from this error because it has other uses, such as a trigger to switch to an entity update.
The ingestion is ASYNC, so the .article content upload can be successful but still fail during ingestion. You will need to use the getStatus(), or requestStatus() if you're using the Content Producer Service SDK for PHP, to track the ingestion progress and status.