Verify if user can modify a dataset before calling the mutation.
If DS read_only and request user is not the creator of DS we have to return the appropriate message. If the user doesnt receive the DS through sharing, return the appropriate message (check writable_by_profile method of DataSetManager for more details on the logic)