You can add data deeply, but at the moment you cannot update data deeply in GraphQL. But you can using var blocks and upserts in DQL.
The DQL would look like:
upsert {
query {
var(func: eq(User.username,"foo")) {
x as role
}
}
mutation {
set {
uid(x) <Role.type> "MEMBER" .
}
}
}