Page 33 of SCIM RFC 7644 (https://tools.ietf.org/html/rfc7644#section-3.5.2) defines valid examples of "path", including the first example that you gave: "path":"addresses[type eq \"work\"]"
Your interpretation of what needs to happen in response to the first sample is correct. If no array exists yet, then you should create the array and then add the value to the array. The creation of the array can happen proactively or reactively - meaning, you can set it ahead of time to be an empty array, or can leave the value as null until such a point where a value needs to be added to the array, and then at that time create the array and then add the value to it.