Por que usar o Attach para atualizar o Entity Framework 6?

Ao procurar as melhores práticas para executar a operação CRUD via EF, observei que é altamente recomendável usarAttach() ouFind() métodos antes de atualizar uma entidade. Funciona bem e, de acordo com a documentação da EF, esses métodos levam a entidade ao contexto que é bastante claro para mim. Mas o código a seguir me confundiu bastante

public void Update(object entity)
{
    Record record = new Record() {
        id = 1,
        value = 5
    };
    using (SomeContext ctx = new SomeContext())
    {
        ctx.Entry(record).State = EntityState.Modified;
        ctx.SaveChanges();
    }
}

Suponha que tenhamos um registro com id = 1 no banco de dados. Nesta condição, o código acima atualizará o registro (configure o valor para 5). A questão é por que isso funciona? E então por que devo usarAttach()? Tanto quanto eu entendo, o registro não foi anexado ao contexto de forma alguma. Eu li capítulos relevantes deesta livro eo tutorial mas eles usam abordagem de 2 consultas. Também naveguei SO, mas não encontrei resposta na minha pergunta. Ajude-me com explicações ou algumas boas matérias, por favor.

questionAnswers(1)

yourAnswerToTheQuestion