Throw proper exception when writing an asset with no targetPath
Update documentation to clarify targetPath is needed for writing an asset