Does ADB push and pull work on non-rooted phones?
ADB commands work without root. However the /data partition is only accessible by rooted users* and while /system can be read by anyone, it's a read-only partition and root is needed to remount it as writable. 

*There's one exception. The/data/local folder is accessible by non-root users too. This folder is primarily used for temporary like when you install an app via ADB.
The only practical use for this folder is that you can use a custom bootanimation by pushing a bootanimation zip file here.