Now that you know you are getting puts from Object, not Kernel, perhaps this snippet will find the culprit:
Object.instance_method(:puts).source_location
It should return an Array containing the file path and line number at which puts has been defined (unless it is defined in compiled code or not an instance method, in which case it returns nil).
Edit: this shorter version should also work:
method(:puts).source_location